//
//  PlSCFPreferences.h
//  Injector
//
//  Created by ∞ on 10/12/07.
//  Copyright 2007 Emanuele Vulcano (infinite-labs.net). All rights reserved.
//

#import <Cocoa/Cocoa.h>
#import "PlSPreferencesController.h"

#define kPlSPreferencesIdentifier @"net.infinite-labs.PlugSuit"
#define kPlSDisabledPlugInIdentifiersKey @"PlSDisabledIdentifiers"
#define kPlSExcludedApplicationIdentifiersKey @"PlSExcludedApplications"
#define kPlSExcludedApplicationPathsKey @"PlSExcludedAppPaths"
#define kPlSPreferencesChangedNotification @"kPlSPreferencesChangedNotification"
#define kPlSDistributedObjectName @"net.infinite-labs.PlugSuit.PRIVATE.RunMarker"
#define kPlSLastUpdateCheckDateKey @"PlSLastUpdateCheck"

#define kPlSShouldTryEnablingOnDisplayKey @"PlSShouldTryEnabling"

#define kPlSCheckForPlugSuitUpdatesKey @"PlSCheckForPlugSuitUpdates"
#define kPlSCheckForPlugInUpdatesKey @"PlSCheckForPlugInUpdates"

@interface PlSCFPreferences : NSObject <PlSPreferencesController> {

}

- (void) setDisabled:(BOOL) pref forIdentifier:(NSString*) identifier inKey:(NSString*) key;
- (BOOL) isIdentifier:(NSString*) ident disabledInKey:(NSString*) key;
- (NSArray*) identifiersExcludedForKey:(NSString*) key;
- (void) notifyPreferencesChanged;

- (NSDate*) lastUpdateCheckDate;
- (void) markNowAsLastUpdateCheckDate;

@property BOOL checkForPlugSuitUpdates;
@property BOOL checkForPlugInUpdates;

@property(readonly) BOOL isCheckingForUpdates;

- (BOOL) boolForKey:(NSString*) key defaultValue:(BOOL) def;
- (void) setBool:(BOOL) val forKey:(NSString*) key;

@property BOOL shouldTryEnabling;

@end
